package solitaire.controle;

import java.awt.Color;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import solitaire.application.Carte;
import solitaire.application.Solitaire;
import solitaire.application.Tas;
import solitaire.application.Usine;
import solitaire.presentation.PColonne;
import solitaire.presentation.PSolitaire;
import solitaire.presentation.PTasDeCartesColorees;

public class CSolitaire extends Solitaire {
	
	private PSolitaire presentation;
	
	public PSolitaire getPresentation() {
		return presentation;
	}

	public CSolitaire(String arg0, Usine arg1) {
		super(arg0, arg1);
	}

	@Override
	protected void carteDAlterneeVersAlternee() {
		super.carteDAlterneeVersAlternee();
	}

	@Override
	protected void carteDAlterneeVersCouleur() {
		super.carteDAlterneeVersCouleur();
	}

	@Override
	protected void carteDeCouleurVersAlternee() {
		super.carteDeCouleurVersAlternee();
	}

	@Override
	protected void carteDeSabotVersAlternee() {
		super.carteDeSabotVersAlternee();
	}

	@Override
	protected void carteDeSabotVersCouleur() {
		super.carteDeSabotVersCouleur();
	}

	@Override
	protected void deplacerCarte(Tas arg0, Tas arg1) {
		super.deplacerCarte(arg0, arg1);
	}

	@Override
	protected void deplacerSousTas() {
		super.deplacerSousTas();
	}

	@Override
	protected void deplacerTas() {
		super.deplacerTas();
	}

	@Override
	protected boolean gagne() {
		return super.gagne();
	}

	@Override
	protected boolean indiceAlterneeValide(int arg0) {
		return super.indiceAlterneeValide(arg0);
	}

	@Override
	protected boolean indiceDeCouleurValide(int arg0) {
		return super.indiceDeCouleurValide(arg0);
	}

	public void initialiser() {
		
		super.initialiser();
		
		
		PColonne pPilesAlternees[] = new PColonne[7];
		PTasDeCartesColorees pPilesColorees[] = new PTasDeCartesColorees[4];
		
		for(int i = 0 ; i < 7 ; i++) {
			pPilesAlternees[i] = ((CColonne)pilesAlternees[i]).getPresentation();
		}
		
		for(int i = 0 ; i < 4 ; i++) {
			pPilesColorees[i] = ((CTasDeCartesColorees)pilesColorees[i]).getPresentation();
		}
		
		presentation = new PSolitaire(this, ((CSabot)sabot).getPresentation(), pPilesAlternees, pPilesColorees);
		
	}

	@Override
	public void jouer() {
		super.jouer();
	}

	@Override
	protected char menuJouer() {
		return super.menuJouer();
	}

	@Override
	protected void nouveauTour() {
		super.nouveauTour();
	}

	@Override
	protected void retournerCarte() {
		super.retournerCarte();
	}

	@Override
	public void run() {
		super.run();
	}

	@Override
	protected char saisie() {
		return super.saisie();
	}

	@Override
	protected boolean termine() {
		return super.termine();
	}

	@Override
	public String toString() {
		return super.toString();
	}

	@Override
	protected void traiterJeu(char arg0) {
		super.traiterJeu(arg0);
	}

	@Override
	protected void troisCartes() {
		super.troisCartes();
	}
	
	public static void main (String args []) {
		Solitaire s = new CSolitaire("solitaire", new CUsine());
		s.initialiser();
		
		JFrame f = new JFrame("Jeu du Solitaire") ;
		f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		f.getContentPane ().setBackground(new Color(143, 143, 143));
		
		f.getContentPane().add(((CSolitaire)s).getPresentation());
		
		f.setVisible (true) ;
		f.pack();
		
		s.jouer();
	}

}
